/**
 * <b>项目名：</b>meizuapi<br/>
 * <b>包名：</b>com.meizu.api.meizuapi<br/>
 * <b>文件名：</b>Mail.java<br/>
 * <b>版本信息：</b> @version 1.0.0<br/>
 * <b>日期：</b>2013-5-6-上午9:18:50<br/>
 * <b>Copyright (c)</b> 2013魅族公司-版权所有<br/>
 *
 */

package org.apitool.main;

import java.util.Map;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

import com.alibaba.fastjson.JSONObject;

/**
 * <b>类名称：</b>Mail<br/>
 * <b>类描述：</b>
 * 
 * <pre>
 </pre>
 * 
 * <br/>
 * <b>创建人：</b>张军强<br/>
 * <b>修改人：</b>张军强<br/>
 * <b>修改时间：</b>2013-5-6 上午9:18:50<br/>
 * <b>修改备注：</b><br/>
 * 
 * @version 1.0.0<br/>
 */

public class MailFactory {

	private static MailFactory _instance = null;

	private MailFactory() {
	}

	public static MailFactory getInstance() {
		if (_instance == null) {
			_instance = new MailFactory();
		}
		return _instance;
	}

	public static boolean send(String to,/* 收信人地址 */String toName,// 收信人姓名
			String subject, /* 主题 */
			String body /* 内容 */
	) {
		if (to == null || to.equals("") || subject == null || subject.equals("")) {
			throw new RuntimeException("收件人或主题为空");
		}

		try {

			Map<String, String> map = JSONObject.parseObject(Main.email, Map.class);

			HtmlEmail email = new HtmlEmail();
			email.setHostName(map.get("host"));// 设置发信的smtp服务器

			String[] tos = to.split("\\;");

			for (int i = 0; i < tos.length; i++) {
				email.addTo(tos[i], tos[i]);// 设置收件人帐号和收件人
			}

			email.setFrom(map.get("from"), map.get("from"));// 设置发信的邮件帐号和发信人
			email.setSubject(subject);// 设置邮件主题
			email.setAuthentication(map.get("user"), map.get("pwd"));// 如果smtp服务器需要认证的话，在这里设置帐号、密码
			email.setContent(body, "text/html;charset=utf-8;");
			email.send();
		} catch (EmailException e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}

	public static void main(String[] args) {

	}

}
